package lock;

/**
 * @author jiangwz
 * @create 2019/9/15.
 */
public class Synchronized和lock的区别 {

    //
    /**
     * 1.原始构成
     * synchronized 属于JVM层面的
     * Lock api层面的
     *
     *
     * 2.使用方法
     * synchronized 不需要用户手动释放锁
     * ReentrantLock 需要用户手动释放锁
     *
     *
     *
     * 3. 等待可否中断
     * synchronized 不可被中断
     * ReentrantLock 可以被用户中断,设置超时即可
     *
     * 4. 加锁是否公平
     * synchronized 非公平锁
     * ReentrantLock 都可以
     *
     * 5. 绑定多个条件condition
     * synchronized 没有
     * ReentrantLock 绑定多个条件,可以精确唤醒
     */


}
